package com.mingdao.lhy.service;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebService;

import org.springframework.stereotype.Service;

import com.github.pagehelper.Page;
import com.mingdao.lhy.pojo.Admission;
import com.mingdao.lhy.pojo.FiveYearPlan;
import com.mingdao.lhy.pojo.HighSchool;
import com.mingdao.lhy.pojo.HighSchoolWish;
import com.mingdao.lhy.pojo.MiddleSchoolWish;
import com.mingdao.lhy.pojo.NinePlusFive;
import com.mingdao.lhy.pojo.Score;
import com.mingdao.lhy.pojo.SignUpStudent;
import com.mingdao.lhy.pojo.SpecialProjectAndArtSpecialty;
import com.mingdao.lhy.pojo.ThreeYearPlan;
import com.mingdao.lhy.pojo.WishFive;
import com.mingdao.lhy.pojo.WishFour;
import com.mingdao.lhy.pojo.WishOne;
import com.mingdao.lhy.pojo.WishSix;
import com.mingdao.lhy.pojo.WishThree;
import com.mingdao.lhy.pojo.WishTwo;
import com.mingdao.lhy.pojo.page.ArtSpecialtySignUp;

/**
 * 志愿填报
 * 
 * @author chenyj
 *
 */
@WebService(name = "WishFilling", // 暴露服务名称
		targetNamespace = "http://service.lhy.mingdaon.com/"// 命名空间,一般是接口的包名倒序
)
@Service
public interface WishFillingService {

	/**
	 * 获取对应学生符合条件的学校列表
	 */
	// 根据学生的各种条件判断哪些学校是可以填报的
	// 把相关必要条件传入SQL查询可填报的学校
	// @WebMethod
	// public void getHighSchoolByStudent(@WebParam(name = "student") Student
	// student, int pageNum, int size);

	/**
	 * 获取对应学生符合条件的学校列表
	 */
	// 根据学生的各种条件判断哪些学校是可以填报的
	// 把相关必要条件传入SQL查询可填报的学校
	@WebMethod
	public void getHighSchoolByStudent(SignUpStudent student);

	/**
	 * 获取所有招生高中学校
	 */
	@WebMethod
	public List<HighSchool> getAllHighSchool();

	/**
	 * 保存所填写高中志愿
	 */
	@WebMethod
	public int saveHighSchoolWish(HighSchoolWish wish);

	/**
	 * 保存所填写中职志愿
	 */
	@WebMethod
	public int saveMiddleSchoolWish(MiddleSchoolWish wish);

	/**
	 * 州教育局获取所有特色项目及艺体特长报名学生信息
	 */
	@WebMethod
	public List<ArtSpecialtySignUp> getAllArtSpeciatlyStudent();

	/**
	 * 根据学生报名号获取一名特色项目及艺体特长报名学生信息
	 */
	@WebMethod
	public ArtSpecialtySignUp getArtSpeciatlyStudentByBmh(String bmh);

	/**
	 * 根据学生报名号获取一名高中院校（第1，2，3批次）报名学生信息
	 */
	@WebMethod
	public HighSchoolWish getOneTwoThreeStudentByBmh(String bmh);

	/**
	 * 根据学生报名号获取一名中职院校（第4，5，6批次）报名学生信息
	 */
	@WebMethod
	public MiddleSchoolWish getFourFiveSixStudentByBmh(String bmh);

	/**
	 * 判断是否在合适的时间段，是否可以填报志愿
	 */
	@WebMethod
	public boolean isCanWillFilling();

	/**
	 * 根据身份证号从数据库中查询学生信息
	 * 
	 * @param sfzh
	 * @return
	 */
	@WebMethod
	public SignUpStudent getStudentByBmh(String bmh);

	/**
	 * 根据传的学生信息，修改学生密码
	 * 
	 * @param studeng
	 * @return
	 */
	public int changePassword(SignUpStudent studeng);

	/**
	 * 取一类体制学校
	 * 
	 * @return
	 */
	public List<HighSchool> getOneClassOfSystems(List<String> xxdms);

	/**
	 * 取第一批次学校
	 * 
	 * @return
	 */
	public WishOne getWishOneSchool(SignUpStudent student);

	/**
	 * 取第二批次学校
	 * 
	 * @param signUpStudent
	 * @return
	 */
	public WishTwo getWishTwoSchool(SignUpStudent signUpStudent);

	/**
	 * 取第三批次学校
	 * 
	 * @param signUpStudent
	 * @return
	 */
	public WishThree getWishThreeSchool(SignUpStudent signUpStudent);

	/**
	 * 取第四批次学校
	 * 
	 * @param signUpStudent
	 * @return
	 */
	public WishFour getWishFourSchool(SignUpStudent signUpStudent);

	/**
	 * 取第五批次学校
	 * 
	 * @param signUpStudent
	 * @return
	 */
	public WishFive getWishFiveSchool(SignUpStudent signUpStudent);

	/**
	 * 取第六批次学校
	 * 
	 * @param signUpStudent
	 * @return
	 */
	public WishSix getWishSixSchool(SignUpStudent signUpStudent);

	/**
	 * 保存艺体特长报名数据
	 * 
	 * @param artSpecialtySignUp
	 * @return
	 */
	public int saveArtSpecialtyYt(ArtSpecialtySignUp artSpecialtySignUp);

	/**
	 * 保存特色项目报名数据
	 * 
	 * @param artSpecialtySignUp
	 * @return
	 */
	public int saveArtSpecialtyTs(ArtSpecialtySignUp artSpecialtySignUp);

	/**
	 * 初始化学生密码
	 * 
	 * @param signUpStudent
	 * @return
	 */
	public int initStudentPassword(String bmh);

	/**
	 * 根据学生报名号查询考试成绩
	 * 
	 * @param bmh
	 * @return
	 */
	public Score queryExamResultByBmh(String bmh);

	/**
	 * 查询所有考试成绩
	 * 
	 * @return
	 */
	public List<Score> queryAllExamResult();

	/**
	 * 根据学校ID查询学校所属专业（高中）
	 * 
	 * @param schoolId
	 * @return
	 */
	public List<SpecialProjectAndArtSpecialty> getMajorByHighSchoolId(String schoolId);

	/**
	 *
	 * 根据学校ID查询学校所属师范专业（五年计划）
	 * 
	 * @param schoolId
	 * @return
	 */
	public List<FiveYearPlan> getNormalMajorFiveYearPlanBySchoolId(String schoolId);

	/**
	 * 根据学校ID查询学校所属非师范专业（五年计划）
	 * 
	 * @param schoolId
	 * @return
	 */
	public List<FiveYearPlan> getNotNormalMajorFiveYearPlanBySchoolId(String schoolId);

	/**
	 * 根据学校ID查询学校所属专业（三年计划）
	 * 
	 * @param schoolId
	 * @return
	 */
	public List<ThreeYearPlan> getMajorThreeYearPlanBySchoolId(String schoolId);

	/**
	 * 根据学校ID查询学校所属专业（9+5）
	 * 
	 * @param schoolId
	 * @return
	 */
	public List<NinePlusFive> getMajorNinePlusFiveBySchoolId(String schoolId);

	public Page<HighSchool> findByPage(int pageNum, int size);

	/**
	 * 根据学生获取就读地对应高中学校
	 * 
	 * @param jdd
	 * @return
	 */
	public HighSchool getSchoolByJdd(String jdd);

	/**
	 * 删除艺体报名数据
	 * 
	 * @param artSpecialtySignUp
	 * @return
	 */
	int deleteArtSpecialtyYt(ArtSpecialtySignUp artSpecialtySignUp);

	/**
	 * 根据学生报名号查询录取结果
	 * @param bmh
	 * @return
	 */
	Admission queryAdmissionByBmh(String bmh);

}
